package com.aike.user_center_practice.common.BaseResponse;

import lombok.Data;

import java.io.Serializable;

/**
 * 通用返回类
 * @param <T> 泛型
 */
@Data
public class BaseResponse<T> implements Serializable {

    private int code;

    private T data;

    private String massage;

    private String description;

    /**
     * 返回类方法
     * @param code ：正常为0
     * @param data: 泛型数据
     * @param massage: 返回消息
     */
    public BaseResponse(int code, T data, String massage, String description) {
        this.code = code;
        this.data = data;
        this.massage = massage;
        this.description = description;
    }

    /**
     * 返回类方法
     * @param code ：正常为0
     * @param data: 泛型数据
     */
    public BaseResponse(int code, T data, String massage) {
        this.code = code;
        this.data = data;
        this.massage = massage;
    }

    /**
     * 返回类方法
     * @param code ：正常为0
     * @param massage: 返回消息
     */
    public BaseResponse(int code, String massage) {
        this.code = code;
        this.massage = massage;
    }

    /**
     * 使用通用错误码作为值返回
     * @param errorCode 错误码
     */
    public BaseResponse(ErrorCode errorCode) {
       this(errorCode.getCode(), null, errorCode.getMessage(), errorCode.getDescription());
    }
}
